package cn.huiyunche.base.service.vo;

import cn.huiyunche.base.service.handler.JsonDateSerializerByLine;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @ClassName: OrderVo
 * @Description: TODO
 * @author: Aaron
 * @date: 2016年6月14日 上午8:53:05
 */
public class WaybillVo implements Serializable {

    /**
     * @fieldName: serialVersionUID
     * @fieldType: long
     * @Description: TODO
     */
    private static final long serialVersionUID = -6603194474809811491L;

    /**
     * @fieldName: id
     * @fieldType: Long
     * @Description: TODO
     */
    private Long id;

    /**
     * @fieldName: orderCode
     * @fieldType: String
     * @Description: 订单编号
     */
    private String orderCode;

    /**
     * @fieldName: departCityName
     * @fieldType: String
     * @Description: 出发城市
     */
    private String departCityName;

    /**
     * @fieldName: departAddr
     * @fieldType: String
     * @Description: 发车详细地址
     */
    private String departAddr;

    /**
     * @fieldName: departUnit
     * @fieldType: String
     * @Description: 出发单位
     */
    private String departUnit;

    /**
     * @fieldName: departContact
     * @fieldType: String
     * @Description: 发车人
     */
    private String departContact;

    /**
     * @fieldName: departPhone
     * @fieldType: String
     * @Description: 发车联系电话
     */
    private String departPhone;

    /**
     * @fieldName: receiptCityName
     * @fieldType: String
     * @Description: 目的地城市
     */
    private String receiptCityName;

    /**
     * @fieldName: receiptAddr
     * @fieldType: String
     * @Description: 目的地详细地址
     */
    private String receiptAddr;

    /**
     * @fieldName: receiptUnit
     * @fieldType: String
     * @Description: 接收单位
     */
    private String receiptUnit;

    /**
     * @fieldName: receiptContact
     * @fieldType: String
     * @Description: 收车人
     */
    private String receiptContact;

    /**
     * @fieldName: receiptPhone
     * @fieldType: String
     * @Description: 收车联系电话
     */
    private String receiptPhone;

    /**
     * @fieldName: deliveryDate
     * @fieldType: Date
     * @Description: 出发日期
     */
    @JsonSerialize(using = JsonDateSerializerByLine.class)
    private Date deliveryDate;

    /**
     * @fieldName: arriveDate
     * @fieldType: Date
     * @Description: 到达日期
     */
    @JsonSerialize(using = JsonDateSerializerByLine.class)
    private Date arriveDate;

    /**
     * @fieldName: actualCost
     * @fieldType: BigDecimal
     * @Description: 实际金额
     */
    private BigDecimal actualCost;

    /**
     * @fieldName: status
     * @fieldType: Integer
     * @Description: 订单状态
     */
    private Integer status;

    /**
     * @fieldName: payStatus
     * @fieldType: Integer
     * @Description: 支付状态
     */
    private Integer payStatus;

    /**
     * @fieldName: statusText
     * @fieldType: String
     * @Description: 订单状态显示文本
     */
    private String statusText;

    /**
     * @fieldName: payStatusText
     * @fieldType: String
     * @Description: 付款状态显示文本
     */
    private String payStatusText;

    /**
     * @fieldName: comment
     * @fieldType: String
     * @Description: 备注
     */
    private String comment;

    /**
     * @fieldName: vehicles
     * @fieldType: List<OrderDetail>
     * @Description: 订单详情（车辆信息）
     */
    private List<COrderDetailVo> vehicles = new ArrayList<COrderDetailVo>(0);

    /**
     * @fieldName: PostTimeRemaining
     * @fieldType: long
     * @Description: 剩余超时时间
     */
    private long postTimeRemaining;

    //车辆信息
    private String detail;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getOrderCode() {
        return orderCode;
    }

    public void setOrderCode(String orderCode) {
        this.orderCode = orderCode;
    }

    public String getDepartCityName() {
        return departCityName;
    }

    public void setDepartCityName(String departCityName) {
        this.departCityName = departCityName;
    }

    public String getDepartAddr() {
        return departAddr;
    }

    public void setDepartAddr(String departAddr) {
        this.departAddr = departAddr;
    }

    public String getDepartUnit() {
        return departUnit;
    }

    public void setDepartUnit(String departUnit) {
        this.departUnit = departUnit;
    }

    public String getDepartContact() {
        return departContact;
    }

    public void setDepartContact(String departContact) {
        this.departContact = departContact;
    }

    public String getDepartPhone() {
        return departPhone;
    }

    public void setDepartPhone(String departPhone) {
        this.departPhone = departPhone;
    }

    public String getReceiptCityName() {
        return receiptCityName;
    }

    public void setReceiptCityName(String receiptCityName) {
        this.receiptCityName = receiptCityName;
    }

    public String getReceiptAddr() {
        return receiptAddr;
    }

    public void setReceiptAddr(String receiptAddr) {
        this.receiptAddr = receiptAddr;
    }

    public String getReceiptUnit() {
        return receiptUnit;
    }

    public void setReceiptUnit(String receiptUnit) {
        this.receiptUnit = receiptUnit;
    }

    public String getReceiptContact() {
        return receiptContact;
    }

    public void setReceiptContact(String receiptContact) {
        this.receiptContact = receiptContact;
    }

    public String getReceiptPhone() {
        return receiptPhone;
    }

    public void setReceiptPhone(String receiptPhone) {
        this.receiptPhone = receiptPhone;
    }

    public Date getDeliveryDate() {
        return deliveryDate;
    }

    public void setDeliveryDate(Date deliveryDate) {
        this.deliveryDate = deliveryDate;
    }

    public Date getArriveDate() {
        return arriveDate;
    }

    public void setArriveDate(Date arriveDate) {
        this.arriveDate = arriveDate;
    }

    public BigDecimal getActualCost() {
        return actualCost;
    }

    public void setActualCost(BigDecimal actualCost) {
        this.actualCost = actualCost;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }

    public String getStatusText() {
        return statusText;
    }

    public void setStatusText(String statusText) {
        this.statusText = statusText;
    }

    public String getPayStatusText() {
        return payStatusText;
    }

    public void setPayStatusText(String payStatusText) {
        this.payStatusText = payStatusText;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }

    public List<COrderDetailVo> getVehicles() {
        return vehicles;
    }

    public void setVehicles(List<COrderDetailVo> vehicles) {
        this.vehicles = vehicles;
    }

    public long getPostTimeRemaining() {
        return postTimeRemaining;
    }

    public void setPostTimeRemaining(long postTimeRemaining) {
        this.postTimeRemaining = postTimeRemaining;
    }

    public String getDetail() {
        return detail;
    }

    public void setDetail(String detail) {
        this.detail = detail;
    }
}
